package com.turing.post.capitalaccounts.util;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 商户资金往来记帐凭证
 * 
 * @author 李治
 * 
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "MERCHANTVOUCHER")
public class MerchantVoucher implements Serializable {
	/**
	 * 手工结算ID
	 */
	private BigInteger merchantSettlementId;
	/**
	 * 商户NO
	 */
	private String merchantNo;
	/**
	 * 发卡商NO
	 */
	private BigInteger issueCompanyNo;
	/**
	 * 账务日期
	 */
	private Date tranDate;
	/**
	 * 记账时间
	 */
	private Date tranTime;
	/**
	 * 记账类型
	 */
	private String tranType;
	/**
	 * 发生额
	 */
	private BigInteger amount;
	/**
	 * 凭证号
	 */
	private String voucherNo;
	/**
	 * 凭证摘要
	 */
	private String voucherRemark;
	/**
	 * 造作员ID
	 */
	private BigInteger operId;
	/**
	 * 备注
	 */
	private String remark;
	/**
	 * 记账类型 消费日结
	 */
	public static final String TRANTYPE_CONSUMER_DAYEND = "0";
	/**
	 * 记账类型 其他
	 */
	public static final String TRANTYPE_OTHER = "1";

	public MerchantVoucher() {
		super();
	}

	public MerchantVoucher(BigInteger merchantSettlementId, String merchantNo,
			BigInteger issueCompanyNo, Date tranDate, Date tranTime,
			String tranType, BigInteger amount, String voucherNo,
			String voucherRemark, BigInteger operId, String remark) {
		super();
		this.merchantSettlementId = merchantSettlementId;
		this.merchantNo = merchantNo;
		this.issueCompanyNo = issueCompanyNo;
		this.tranDate = tranDate;
		this.tranTime = tranTime;
		this.tranType = tranType;
		this.amount = amount;
		this.voucherNo = voucherNo;
		this.voucherRemark = voucherRemark;
		this.operId = operId;
		this.remark = remark;
	}

	@Id
	@Column(name = "MERCHANTSETTLEMENTID", nullable = false)
	public BigInteger getMerchantSettlementId() {
		return merchantSettlementId;
	}

	public void setMerchantSettlementId(BigInteger merchantSettlementId) {
		this.merchantSettlementId = merchantSettlementId;
	}

	@Column(name = "MERCHANTNO", nullable = false)
	public String getMerchantNo() {
		return merchantNo;
	}

	public void setMerchantNo(String merchantNo) {
		this.merchantNo = merchantNo;
	}

	@Column(name = "ISSUECOMPANYNO", nullable = false)
	public BigInteger getIssueCompanyNo() {
		return issueCompanyNo;
	}

	public void setIssueCompanyNo(BigInteger issueCompanyNo) {
		this.issueCompanyNo = issueCompanyNo;
	}

	@Column(name = "TRANDATE", nullable = false)
	public Date getTranDate() {
		return tranDate;
	}

	public void setTranDate(Date tranDate) {
		this.tranDate = tranDate;
	}

	@Column(name = "TRANTIME", nullable = false)
	public Date getTranTime() {
		return tranTime;
	}

	public void setTranTime(Date tranTime) {
		this.tranTime = tranTime;
	}

	@Column(name = "TRANTYPE", nullable = false)
	public String getTranType() {
		return tranType;
	}

	public void setTranType(String tranType) {
		this.tranType = tranType;
	}

	@Column(name = "AMOUNT", nullable = false)
	public BigInteger getAmount() {
		return amount;
	}

	public void setAmount(BigInteger amount) {
		this.amount = amount;
	}

	@Column(name = "VOUCHERNO")
	public String getVoucherNo() {
		return voucherNo;
	}

	public void setVoucherNo(String voucherNo) {
		this.voucherNo = voucherNo;
	}

	@Column(name = "VOUCHERREMARK")
	public String getVoucherRemark() {
		return voucherRemark;
	}

	public void setVoucherRemark(String voucherRemark) {
		this.voucherRemark = voucherRemark;
	}

	@Column(name = "OPERID", nullable = false)
	public BigInteger getOperId() {
		return operId;
	}

	public void setOperId(BigInteger operId) {
		this.operId = operId;
	}

	@Column(name = "REMARK")
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

}
